
         ORG   $0800
         LST   OFF

***********************
*                     *
*   BOOT 1 MURYADEN   *
* (S)OURCE BY DECKARD *
*                     *
***********************

BUFLOW   EQU   $26
BUFHIGH  EQU   $27
SECTEUR0 EQU   $3D
PISTE    EQU   $41
NB_SECTEUR EQU $FE
SECTEUR  EQU   $FF

H0478    EQU   $0478

INTRO_TBJ EQU  $6000      ; INTRO BYTLEJUICE
RUN_INTRO EQU  $6270
RDOS     EQU   $B400

STROBE   EQU   $C010
PHASEOFF EQU   $C080
PHASEON  EQU   $C081
BOOT0    EQU   $C65C

DRIVEOFF EQU   $C0E8
HOME     EQU   $FC58
SETKBD   EQU   $FE89
SETVID   EQU   $FE93
INIT     EQU   $FB2F

*-------------------------------

         DFB   1          ; 1 SECTEUR

BOOT1    LDA   #$60       ; RTS
         STA   BOOT1      ; EVITE 2ND EXEC
         LDA   #0
         STA   H0478
         JSR   SETKBD
         JSR   SETVID
         JSR   INIT
         JSR   HOME

         LDY   #0         ; AFFICHE TITRE "MURYADEN"
:2       LDA   TITRE,Y
         BEQ   :1         ; TERMINATEUR

         STA   $05B4,Y
         INY
         BNE   :2         ; ALWAYS

:1       BIT   STROBE

         NOP
         NOP
         NOP
         INC   $03F4      ; RESET : REBOOT

         LDA   #>INTRO_TBJ-$200
         STA   BUFHIGH    ; LOAD T$00 S$01 -> T$04 S$0A
         LDA   #0         ; PISTE
         LDX   #1         ; SECTEUR
         LDY   #74        ; NB SECT
         JSR   GO         ; CHARGE $6000-$A9FF

         LDA   #>RDOS-$200
         STA   BUFHIGH    ; LOAD T$04 S$0B -> T$05 S$06
         LDA   #4         ; PISTE
         LDX   #$0B       ; SECTEUR
         LDY   #12        ; NB SECT
         JSR   GO         ; CHARGE $B400-$BFFF

         BIT   DRIVEOFF
         JMP   RUN_INTRO

         BRK

******************* POINT D'ENTREE ******************

GO       STA   PISTE
         STX   SECTEUR
         STY   NB_SECTEUR
         LDA   BUFHIGH
         CLC
         ADC   NB_SECTEUR
         STA   BUFHIGH
         INC   BUFHIGH
         DEY
         BEQ   CALIBRAGE

H0860    INC   SECTEUR    ; SECTEUR SUIVANT
         LDA   SECTEUR
         CMP   #16        ; DERNIER SECTEUR?
         BNE   H086E      ; NON

         LDA   #0         ; PISTE SUIVANTE
         STA   SECTEUR
         INC   PISTE
H086E    DEY
         BNE   H0860

CALIBRAGE LDX  #$60
         LDA   PISTE
         ASL
         STA   BUFLOW
H0878    LDA   H0478
         STA   $FD
         SEC
         SBC   BUFLOW
         BEQ   GESTIONLOAD

         BCS   H0889

         INC   H0478
         BCC   H088C

H0889    DEC   H0478
H088C    JSR   H08A2
         JSR   H08F2
         LDA   $FD
         AND   #$03
         ASL
         ORA   #$60
         TAY
         LDA   PHASEOFF,Y
         JSR   H08F2
         BEQ   H0878

H08A2    LDA   H0478
         AND   #$03
         ASL
         ORA   #$60
         TAY
         LDA   PHASEON,Y
         RTS

*-------------------------------

GESTIONLOAD LDA #$00      ; IDENTIQUE AU TOM E. HAWK BOOT
         STA   BUFLOW
         LDY   SECTEUR    ; EQUIVALENCE SECTEUR LOGIQUE & PHYSIQUE
         LDA   DATASECT,Y
         STA   SECTEUR0
         LDX   #$60       ; CHARGE LE SECTEUR
         JSR   BOOT0
         DEC   SECTEUR    ; SECTEUR PRECEDENT
         BPL   H08C9

         LDA   #$0F       ; POSITIONNE SUR LE DERNIER SECTEUR
         STA   SECTEUR    ; DE LA PISTE PRECEDENTE
         DEC   PISTE
H08C9    DEC   BUFHIGH    ; MISE A JOUR BUFFER RECEPTION
         DEC   BUFHIGH
         DEC   NB_SECTEUR
         BNE   CALIBRAGE  ; ON N'A PAS FINI DE TOUT CHARGER

         RTS

*-------------------------------

TITRE    HEX   FF20FF
         ASC   " MURYADEN "
         HEX   FF20FF

*-------------------------------

DATASECT HEX   000D0B09070503010E0C0A080604020F

*-------------------------------

H08F2    LDA   #$28
         SEC
H08F5    PHA
H08F6    SBC   #1
         BNE   H08F6

         PLA
         SBC   #1
         BNE   H08F5

         RTS


         SAV   BOOT1.MURYADEN
